home *** CD-ROM | disk | FTP | other *** search
- /*
-
- RGBVEC.C RGB Colour vector datatype
-
- */
-
- /*...sincludes:0:*/
- #include <stdio.h>
- #include <stdlib.h>
- #include <stddef.h>
- #include <malloc.h>
- #include <memory.h>
- #include <math.h>
- #include "standard.h"
- #define _RGBVEC_
- #include "rgbvec.h"
-
- /*...vrgbvec\46\h:0:*/
- /*...e*/
-
- /*...sscale_rgbvec:0:*/
- RGBVEC scale_rgbvec(RGBVEC rgbvec, double scalar)
- {
- rgbvec.r *= scalar;
- rgbvec.g *= scalar;
- rgbvec.b *= scalar;
-
- return rgbvec;
- }
- /*...e*/
-
- /*...srgb_interp_1d:0:*/
- RGBVEC rgbvec_interp_1d(RGBVEC rgbvec_1d[2], double w1)
- {
- double w0 = 1.0 - w1;
- RGBVEC rgbvec;
-
- rgbvec.r = w0 * rgbvec_1d[0].r + w1 * rgbvec_1d[1].r;
- rgbvec.g = w0 * rgbvec_1d[0].g + w1 * rgbvec_1d[1].g;
- rgbvec.b = w0 * rgbvec_1d[0].b + w1 * rgbvec_1d[1].b;
-
- return rgbvec;
- }
- /*...e*/
- /*...srgb_interp_2d:0:*/
- RGBVEC rgbvec_interp_2d(
- RGBVEC rgbvec_2d[2][2],
- double w1major,
- double w1minor
- )
- {
- RGBVEC rgbvec_1d[2];
-
- rgbvec_1d[0] = rgbvec_interp_1d(rgbvec_2d[0], w1minor);
- rgbvec_1d[1] = rgbvec_interp_1d(rgbvec_2d[1], w1minor);
-
- return rgbvec_interp_1d(rgbvec_1d, w1major);
- }
- /*...e*/
-